$(function(){
	$("#add").on("click",function(){
		if($(this).attr('class')=='icon-double-angle-down'){
			$(this).attr('class','icon-double-angle-up');
			$(this).css('color','red');
		}else{
			$(this).attr('class','icon-double-angle-down');
			$(this).css('color','#5fca5f');
		}
		showAddForm();
	});
	var fileType= "";//文件类型
	var repeatNode= "";//重复节点
	//获取五大表结构
	var tables = ['MR_BASEINFO','MR_IPINFO','MR_APPENDPAGE','MR_DIAGNOSE','MR_OPERATION','T_COSTSUB'];
	//循环异步
	var defer = $.Deferred();
	//这一步必须要写，要不然下面的then无法使用
	defer.resolve();
	$.each(tables,function(i,e){
	  defer = defer.then(function () {
	      return $.ajax({
	      url:contextPath + "/xmlStructure/getTableStructure.dhc",
	      method:'post',
	      data:{tableName:e},
	      beforeSend:function(){
	      },
	      success:function(data){
	    	  paramTabPage[tabId][e] = data.data;
	      }
	    })
	  });
	});
	defer.done(function(){//执行完成之后开始加载页面信息
		fillTable();//填充表格数据
	});
	//文件类型下拉菜单值变更事件
	$('#'+tabId+' #mrDataMap').on('change',function(){
		fileType = $(this).find('option:selected').val();
		clearMapInfo();
		if(fileType=="xmlFile")
		{
			$('#'+tabId+' #repeatNode').removeAttr("disabled");
		}
		else
		{
			$('#'+tabId+' #repeatNode').attr("disabled","disabled");
		}
		fillTable();//刷新表数据
	});
	$('#'+tabId+' #repeatNode').change(function(){
		repeatNode= $(this).val();
	});
	//默认20个诊断和手术--需要做到系统配置中
	var fieldOrderStr = "<option value =''>请选择</option>";
	fieldOrderStr += "<option value ='-1'>-1(重复)</option>";
	for(var i=0;i<20;i++){
		fieldOrderStr += "<option value ='"+i+"'>"+i+"</option>";
	}
	$('#'+tabId+' #fieldOrder').html(fieldOrderStr);
	
	//表变更事件
	$('#'+tabId+' #tableCode').on("change",function(){
		var tableName = $(this).find('option:selected').val();
		//信息恢复初始状态
		$('#'+tabId+' #fieldCode option[value=""]').attr("selected","selected");
		$('#'+tabId+' #fieldType option[value=""]').attr("selected","selected");
		$('#'+tabId+' #fieldOrder option[value=""]').attr("selected","selected");
		$('#'+tabId+' #fieldType').attr("disabled","disabled");
		$('#'+tabId+' #fieldOrder').attr("disabled","disabled");
		
		//使下拉框不可用
		if("MR_DIAGNOSE"==tableName||"MR_OPERATION"==tableName)
		{
			$('#'+tabId+' #fieldType').removeAttr("disabled");
			$('#'+tabId+' #fieldOrder').removeAttr("disabled");
		}
		initTable(tableName);
	})
	//上传模版文件
	$('#'+tabId+' #fieldMapUpload').uploadifive({
		'uploadScript' : contextPath + '/fieldMap/filesUpload.dhc',
        'height': 30,
        'width' :140,
        'auto'  : true,//是否自动开始
        'uploadLimit' : 100, //一次同步上传的文件数目     
        'fileSizeLimit' : '500MB', //单个文件大小，0为无限制，可接受KB,MB,GB等单位的字符串值     
        'queueSizeLimit' : 100, //队列中同时存在的文件个数限制
        'fileObjName':'file',
        'removeCompleted': true,  //是否完成后移除序列，默认为true
        'removeTimeout' : '1',  //上传完成后队列多长时间后消失。默认 3秒    需要：removeCompleted : true,时使用
        'progressData' :'percentage',//设置上传进度显示方式，percentage显示上传百分比，speed显示上传速度
        'buttonText' : '<i class="fa fa-folder-open fa-lg"></i>&nbsp;&nbsp;选择上传文件',
        'buttonClass': 'uploadifyH5_btn',
        'fileType' : '*.xls; *.xlsx; *.xml; *.dbf',//允许上传的文件格式
        'multi'    : true,//是否支持多文件上传
        'method'   :'post',//提交方式
        'debug':false,
        //当点击文件队列中文件的关闭按钮或点击取消上传时触发
        'onCancel': function(){},
      	//返回一个错误，选择文件的时候触发  
        'onSelectError':  function(){
            drgUI.error('文件上传失败!');
        },
      	//检测FLASH失败调用  
        'onFallback':function(){  
             drgUI.error('浏览器检测不到兼容版本的HTML5');
        }, 
        'onUploadError' : uploadify_onUploadError,
        'onQueueComplete':function(queueData){	
        	if(fileType=="xmlFile" && repeatNode==""){
        		drgUI.warning('请配置xml的循环路径，如：【Cases/Case】!');
        		return ;
        	}
			$.post(contextPath + "/fieldMap/parseData.dhc",{"fileType":fileType,"repeatNode":repeatNode},function(data){//上传文件之后解析文件
				if(data.hasErrors){
					drgUI.error(data.errorMessage);
				}
				fillTable();//解析完数据之后填充表格
			})
        }
    });
	// 上传按钮小手悬浮
	$("[type=file]").css("cursor","pointer");
});

/**
 * 填充表格数据
 */
function fillTable(){
	var fileType= $('#'+tabId+' #mrDataMap').find("option:selected").val();//文件类型
	$.post(contextPath + "/fieldMap/getTableData.dhc",{"fileType":fileType},function(result){
		var data=[];
		if(result.success && result.data){
			data = result.data;
		}
		var columns=[
	                   {
	                	   "title":"字段/路径",
	                	   "data":"TITLE_NAME"
	                   },
	                   {
	                	   "title":"字段描述",
	                	   "data":"TITLE_DESC"
	                   },
	                   {
	                	   "title":"库表名称",
	                	   "data":"TABLE_CODE"
	                   },
	                   {
	                	   "title":"库表字段",
	                	   "data":"FIELD_CODE"
	                   },
	                   {
	                	   "title":"主要其他",
	                	   "data":"FIELD_TYPE"
	                   },
	                   {
	                	   "title":"字段顺序",
	                	   "data":"FIELD_ORDER"
	                   },
	                   {
	                	   "title":"操作",
	                	   "render": function(obj, type, full){
	                		   return "<a title='修改' class = 'modify'><i class=\"fa fa-edit\"></i></a>&nbsp;&nbsp;"								
        					   + "<a title='删除' class = 'delete'> <i class=\"fa fa-trash-o fa-lg\"></i></a>";
		            	   }
	                   }
	                  ];
		var paramsDataTables={
				stataSave:true,
				scrollX:true,
				scrollY:'400px',
				autoWidth : false
		};
		var oaTable = $('#'+tabId+' #filedMap_Table').dataTableBasic(columns,data,paramsDataTables);
        $("#"+tabId+" #filedMap_Table>tbody").off("click", '.modify');
        $("#"+tabId+" #filedMap_Table>tbody").on('click', '.modify', function () {
            var nTr = $(this).closest('tr');
            var row = oaTable.row( nTr );
            var rowData = row.data();
            //展开form
            $('#' + tabId + ' #addForm').css("display","block");
            //文件字段不能编辑
            $('#'+tabId+' #fieldName').attr("disabled","disabled");
            //初始话表结构
            initTable(rowData.TABLE_CODE);
            //填充行信息
            $('#'+tabId+' #fieldName').val(rowData.TITLE_NAME);//字段名
        	$('#'+tabId+' #fieldDesc').val(rowData.TITLE_DESC);//字段描述
        	$('#'+tabId+' #tableCode option[value="'+rowData.TABLE_CODE+'"]').attr("selected","selected");
        	$('#'+tabId+' #fieldType option[value="'+rowData.FIELD_TYPE+'"]').attr("selected","selected");
        	$('#'+tabId+' #fieldOrder option[value="'+rowData.FIELD_ORDER+'"]').attr("selected","selected");
        	$('#'+tabId+' #fieldCode').selectpicker('val',rowData.FIELD_CODE);
        });
        
        $("#"+tabId+" #filedMap_Table>tbody").off("click", '.delete');
        $("#"+tabId+" #filedMap_Table>tbody").on('click', '.delete', function () {
            var nTr = $(this).closest('tr');
            var row = oaTable.row( nTr );
            var rowData = row.data();
            var fileType= $('#'+tabId+' #mrDataMap').find("option:selected").val();//文件类型
        	var fieldName = rowData.TITLE_NAME;//字段名
        	var fieldCode = rowData.FIELD_CODE;//表字段名
            
           drgUI.confirm({
        		content : '确认删除吗?',
        		callSure : function() {
        			$.post(contextPath + "/fieldMap/deleteFieldMap.dhc",{"mapInfo":"{\"fileType\":\""+fileType+"\",\"fieldName\":\""+fieldName+"\",\"fieldCode\":\""+fieldCode+"\"}"}).done(function(result){
        				clearMapInfo();
        				fillTable();
        			})
        		}
        	});
        });
	})
}
/**
 * 
 * @ Discription：显示增加映射信息的form元素
 * @Autor ：mazhaoyan
 * void
 * fieldMap.js
 * 2018年1月23日下午11:11:03
 */
function showAddForm(){
	$('#' + tabId + ' #addForm').toggle();
	if($('#' + tabId + ' #addForm').css("display")=="none"){
		clearMapInfo();
	}
}
/**
 * 
 * @ Discription:保存单行映射信息
 * @Autor ：mazhaoyan
 * void
 * fieldMap.js
 * 2018年1月23日下午11:07:42
 */
function saveSingleField(){
	var repeatNode = $('#'+tabId+' #repeatNode').val();//重复路径
	var fileType= $('#'+tabId+' #mrDataMap').find("option:selected").val();//文件类型
	var fieldName = $('#'+tabId+' #fieldName').val();//字段名
	var fieldDesc = $('#'+tabId+' #fieldDesc').val();//字段描述
	var tableCode= $('#'+tabId+' #tableCode').find("option:selected").val();//表名代码
	var fieldCode = $('#'+tabId+' #fieldCode').find("option:selected").val();//表字段名
	var fieldType = $('#'+tabId+' #fieldType').find("option:selected").val();//主要其他
	var fieldOrder = $('#'+tabId+' #fieldOrder').find("option:selected").val();//字段顺序
	//Error
	var errInfo = "<br/>";
	if(fileType==""){
		errInfo+="请选择文件类型!<br/>"
	}
	if(fileType=="xmlFile"&&repeatNode==""){
		errInfo+="配置xml文件时请选择重复路径!<br/>"
	}
	if(fieldName==""){
		errInfo+="文件字段不能为空!<br/>"
	}
	if(fieldDesc==""){
		errInfo+="字段描述不能为空!<br/>"
	}
	if(tableCode==""){
		errInfo+="请选择库表名称!<br/>"
	}
	if(fieldCode==""){
		errInfo+="请选择库表字段!<br/>"
	}
	if(fieldType==""&&("MR_DIAGNOSE"==tableCode||"MR_OPERATION"==tableCode)){
		errInfo+="请选择主要其他!<br/>"
	}
	if(fieldOrder==""&&("MR_DIAGNOSE"==tableCode||"MR_OPERATION"==tableCode)){
		errInfo+="请选择字段顺序!<br/>"
	}
	if(errInfo!="<br/>"){
		drgUI.warning(errInfo);
		return;
	}
	$.post(contextPath + "/fieldMap/saveSingleField.dhc",
			{"mapInfo":"{\"fileType\":\""+fileType+"\",\"repeatNode\":\""+repeatNode+"\",\"fieldName\":\""+fieldName+"\",\"fieldDesc\":\""+fieldDesc+"\",\"tableCode\":\""+tableCode+"\",\"fieldCode\":\""+fieldCode+"\",\"fieldType\":\""+fieldType+"\",\"fieldOrder\":\""+fieldOrder+"\"}"},function(data){
		fillTable();
	//	showAddForm();
		//清空数据
	//	clearMapInfo();
		drgUI.success("保存成功");
	})
}
/**
 * 
 * @ Discription:清空映射信息
 * @Autor ：mazhaoyan
 * void
 * fieldMap.js
 * 2018年1月23日下午11:07:09
 */
function clearMapInfo(){
	$('#'+tabId+' #fieldName').removeAttr("disabled");
	$('#'+tabId+' #fieldType').attr("disabled","disabled");
	$('#'+tabId+' #fieldOrder').attr("disabled","disabled");
	$('#'+tabId+' #fieldName').val("");
	$('#'+tabId+' #fieldDesc').val("");
	$('#'+tabId+' #repeatNode').val("");
	$('#'+tabId+' #tableCode option[value=""]').attr("selected","selected");
	$('#'+tabId+' #fieldCode option[value=""]').attr("selected","selected");
	$('#'+tabId+' #fieldType option[value=""]').attr("selected","selected");
	$('#'+tabId+' #fieldOrder option[value=""]').attr("selected","selected");
	$('#'+tabId+' #fieldCode').selectpicker('val', "");
}

/**
 * 
 * @ Discription:加载对应表字段
 * @Autor ：mazhaoyan
 * @param tableName
 * void
 * fieldMap.js
 * 2018年1月24日上午9:18:10
 */
function initTable(tableName)
{
	var feild = paramTabPage[tabId][tableName];
	var l = feild.length;
	var nodeDesc = "";
	nodeDesc += "<option value = '' >请选择</option>";
	if("T_COSTSUB"==tableName){
		
		for(var i=0;i<l;i++)
		{
			nodeDesc += "<option value = '"+feild[i].COST_SUB_CODE+"' >"+feild[i].CS_ALIAS+"</option>";
		}
	}
	else
	{
		for(var i=0;i<l;i++)
		{
			nodeDesc += "<option value = '"+feild[i].COLUMN_NAME+"'>"+feild[i].COMMENTS+"</option>";
		}
	}
	$('#'+tabId+' #fieldCode').empty();
	$('#'+tabId+' #fieldCode').append(nodeDesc);
	$('#'+tabId+' #fieldCode').selectpicker("destroy");
	$('#'+tabId+' #fieldCode').selectpicker({
		width : 160,// select框宽度
		actionsBox : true,// 全选和取消全选
		liveSearch : true,// 搜索框
		selectAllText : '全选',// selected="selected",
		deselectAllText : '取消全选',
		noneSelectedText : '请选择',
		countSelectedText : "已选中{0}个",// 选中的大于2个时，提示
		selectedTextFormat : "count > 2"
	});
}